package com.ftf.tp.message.application.adapter.producer.inner;


import com.ftf.tp.common.domain.BaseDomainEvent;

/**
 * 领域事件发布接口
 *
 * @author tanghao
 */
public interface DomainEventPublisher {

    /**
     * 发布事件
     *
     * @param event event
     */
    <EVENT extends BaseDomainEvent<?>> void publishBySpring(EVENT event);

    /**
     * 发布事件并保存
     *
     * @param event event
     */
    <EVENT extends BaseDomainEvent<?>> void publishAndSave(EVENT event);

}
